<?php
/**
* 名称：路由功能演示类。
* 描述：演示路由相关功能在视图端与控制器端使用方式。
*/
final class Controller_Route extends Controller{
    /**
    * 描述：演示smarty.foreach动态生成链接。。
    * @access protected
    * @return void
    */
    protected function Dynamic(){
        //模拟数据。
        $data=array(
            'Rows'=>array(
                array('id'=>1,'title'=>'标题1','content'=>'内容1'),
                array('id'=>2,'title'=>'标题2','content'=>'内容2'),
                array('id'=>3,'title'=>'标题3','content'=>'内容3'),
                array('id'=>4,'title'=>'标题4','content'=>'内容4'),
                array('id'=>5,'title'=>'标题5','content'=>'内容5')
            ),
            'Parameters'=>array(
                'class'=>9,
                'type'=>'hot',
                'price_max'=>3000,
                'price_min'=>5000
            )
        );
        //渲染模板。
        self::$Template->Assign('data',$data);
        self::$Template->Display('route/dynamic.html');
    }

    /**
    * 描述：演示生成常用链接的方式。。
    * @access protected
    * @return void
    */
    protected function CommonUse(){
        //默认应用但指定控制器。
        echo Route::MakeHyperlink(
            ':news'
        );
        echo '<br/>';
        //默认应用但指定控制器并方法。
        echo Route::MakeHyperlink(
            ':news::list'
        );
        echo '<br/>';
        //默认应用指定控制器并模式。
        echo Route::MakeHyperlink(
            ':capcha-exec'
        );
        echo '<br/>';
        //默认应用指定控制器、模式、方法。
        echo Route::MakeHyperlink(
            ':capcha-class::make'
        );
        echo '<br/>';
        //默认应用但指定控制器、方法、参数并修正参数(字符串形式)。
        echo Route::MakeHyperlink(
            ':news::list',
            'class:9|type:hot|price_max:3000|price_min:5000',
            'class:19|type:shot'
        );
        echo '<br/>';
        //默认应用但指定控制器、模式、方法、参数并修正参数(用关联数组形式)。
        echo Route::MakeHyperlink(
            ':news::list',
            array('class'=>9,'type'=>'hot','price_max'=>3000,'price_min'=>5000),
            array('class'=>99,'type'=>'hots')
        );
        echo '<br/>';
        //默认应用但指定控制器、模式、方法、参数并修正参数(用普通数组形式)。
        echo Route::MakeHyperlink(
            ':news::list',
            array('class:19','type:cool','price_max:8000','price_min:15000'),
            array('class:1119','type:cools')
        );
        echo '<br/>';
        //当前应用并控制器、模式、方法。
        echo Route::MakeHyperlink(
            '__SELF__'
        );
        echo '<br/>';
        //当前应用并控制器、模式、方法、参数及修正参数。
        echo Route::MakeHyperlink(
            '__SELF__',
            array('class'=>9,'type'=>'hot','price_max'=>3000,'price_min'=>5000),
            array('class'=>20,'type'=>'old')
        );
        //渲染视图端生成常用链接页面。
        self::$Template->Display('route/common-use.html');
    }

    /**
    * 描述：演示不常用链接的方式。。
    * @access protected
    * @return void
    */
    protected function NotCommonUse(){
        //默认应用及控制器并加上参数及修正参数（关联数组）。
        echo Route::MakeHyperlink(
            '__DEFAULT__',
            array('class'=>9,'type'=>'hot','price_max'=>3000,'price_min'=>5000),
            array('class'=>99,'type'=>'hots')
        );
        echo '<br/>';
        //指定应用和控制器并加参数及修正参数（普通数组）。
        echo Route::MakeHyperlink(
            'x001',
            'news::list',
            array('class:19','type:cool','price_max:8000','price_min:15000'),
            array('class:1119','type:cools')
        );
        //渲染视图端生成常用链接页面。
        self::$Template->Display('route/not-common-use.html');
    }
}